using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Text.RegularExpressions;

namespace Ghostly.Core.Text
{
    // Emoji list borrowed from https://github.com/lunet-io/markdig/blob/25959174d521c7f4458fa7b340d58a4ac136fa30/src/Markdig/Extensions/Emoji/EmojiParser.cs
    public static class EmojiHelper
    {
        private static Regex _regex;
        private static Dictionary<string, string> _lookup;
        private static Dictionary<string, string> _reverse;

        static EmojiHelper()
        {
            _regex = new Regex(":{1}.*?:{1}");
            _lookup = new Dictionary<string, string>()
            {
                // Supported
                { ":partying_face:", "🥳" },
                { ":ninja_cat:", "🐱‍👤" },
                { ":stunt_cat:", "🐱‍🏍" },
                { ":hacker_cat:", "🐱‍💻" },
                { ":dino_cat:", "🐱‍🐉" },
                { ":hipster_cat:", "🐱‍👓" },
                { ":astro_cat:", "🐱‍🚀" },
                { ":puzzle_piece", "🧩" },
                { ":brown_heart:", "🤎" },
                { ":double_exclamation_mark:", "‼" },
                { ":exlamation_question_mark:", "⁉" },
                { ":check_mark:", "✔" },
                { ":orange_circle:", "🟠" },
                { ":yellow_circle:", "🟡" },
                { ":green_circle:", "🟢" },
                { ":purple_circle:", "🟣" },
                { ":brown_circle:", "🟤" },
                { ":red_rectangle:", "🟥" },
                { ":orange_rectangle:", "🟧" },
                { ":yellow_rectangle:", "🟨" },
                { ":green_rectangle:", "🟩" },
                { ":blue_rectangle:", "🟦" },
                { ":purple_rectangle:", "🟪" },
                { ":brown_rectangle:", "🟫" },
                { ":right_speech_bubble:", "💬" },

                // GitHub
                { ":100:", "💯" },
                { ":1234:", "🔢" },
                { ":smile:", "😄" },
                { ":smiley:", "😃" },
                { ":grinning:", "😀" },
                { ":blush:", "😊" },
                { ":relaxed:", "☺️" },
                { ":wink:", "😉" },
                { ":heart_eyes:", "😍" },
                { ":kissing_heart:", "😘" },
                { ":kissing_closed_eyes:", "😚" },
                { ":kissing:", "😗" },
                { ":kissing_smiling_eyes:", "😙" },
                { ":stuck_out_tongue_winking_eye:", "😜" },
                { ":stuck_out_tongue_closed_eyes:", "😝" },
                { ":stuck_out_tongue:", "😛" },
                { ":flushed:", "😳" },
                { ":grin:", "😁" },
                { ":pensive:", "😔" },
                { ":relieved:", "😌" },
                { ":unamused:", "😒" },
                { ":disappointed:", "😞" },
                { ":persevere:", "😣" },
                { ":cry:", "😢" },
                { ":joy:", "😂" },
                { ":sob:", "😭" },
                { ":sleepy:", "😪" },
                { ":disappointed_relieved:", "😥" },
                { ":cold_sweat:", "😰" },
                { ":sweat_smile:", "😅" },
                { ":sweat:", "😓" },
                { ":weary:", "😩" },
                { ":tired_face:", "😫" },
                { ":fearful:", "😨" },
                { ":scream:", "😱" },
                { ":angry:", "😠" },
                { ":rage:", "😡" },
                { ":triumph:", "😤" },
                { ":confounded:", "😖" },
                { ":laughing:", "😆" },
                { ":satisfied:", "😆" },
                { ":yum:", "😋" },
                { ":mask:", "😷" },
                { ":sunglasses:", "😎" },
                { ":sleeping:", "😴" },
                { ":dizzy_face:", "😵" },
                { ":astonished:", "😲" },
                { ":worried:", "😟" },
                { ":frowning:", "😦" },
                { ":anguished:", "😧" },
                { ":smiling_imp:", "😈" },
                { ":imp:", "👿" },
                { ":open_mouth:", "😮" },
                { ":grimacing:", "😬" },
                { ":neutral_face:", "😐" },
                { ":confused:", "😕" },
                { ":hushed:", "😯" },
                { ":no_mouth:", "😶" },
                { ":innocent:", "😇" },
                { ":smirk:", "😏" },
                { ":expressionless:", "😑" },
                { ":man_with_gua_pi_mao:", "👲" },
                { ":man_with_turban:", "👳" },
                { ":cop:", "👮" },
                { ":construction_worker:", "👷" },
                { ":guardsman:", "💂" },
                { ":baby:", "👶" },
                { ":boy:", "👦" },
                { ":girl:", "👧" },
                { ":man:", "👨" },
                { ":woman:", "👩" },
                { ":older_man:", "👴" },
                { ":older_woman:", "👵" },
                { ":person_with_blond_hair:", "👱" },
                { ":angel:", "👼" },
                { ":princess:", "👸" },
                { ":smiley_cat:", "😺" },
                { ":smile_cat:", "😸" },
                { ":heart_eyes_cat:", "😻" },
                { ":kissing_cat:", "😽" },
                { ":smirk_cat:", "😼" },
                { ":scream_cat:", "🙀" },
                { ":crying_cat_face:", "😿" },
                { ":joy_cat:", "😹" },
                { ":pouting_cat:", "😾" },
                { ":japanese_ogre:", "👹" },
                { ":japanese_goblin:", "👺" },
                { ":see_no_evil:", "🙈" },
                { ":hear_no_evil:", "🙉" },
                { ":speak_no_evil:", "🙊" },
                { ":skull:", "💀" },
                { ":alien:", "👽" },
                { ":hankey:", "💩" },
                { ":poop:", "💩" },
                { ":shit:", "💩" },
                { ":fire:", "🔥" },
                { ":sparkles:", "✨" },
                { ":star2:", "🌟" },
                { ":dizzy:", "💫" },
                { ":boom:", "💥" },
                { ":collision:", "💥" },
                { ":anger:", "💢" },
                { ":sweat_drops:", "💦" },
                { ":droplet:", "💧" },
                { ":zzz:", "💤" },
                { ":dash:", "💨" },
                { ":ear:", "👂" },
                { ":eyes:", "👀" },
                { ":nose:", "👃" },
                { ":tongue:", "👅" },
                { ":lips:", "👄" },
                { ":+1:", "👍" },
                { ":thumbsup:", "👍" },
                { ":-1:", "👎" },
                { ":thumbsdown:", "👎" },
                { ":ok_hand:", "👌" },
                { ":facepunch:", "👊" },
                { ":punch:", "👊" },
                { ":fist:", "✊" },
                { ":v:", "✌️" },
                { ":wave:", "👋" },
                { ":hand:", "✋" },
                { ":raised_hand:", "✋" },
                { ":open_hands:", "👐" },
                { ":point_up_2:", "👆" },
                { ":point_down:", "👇" },
                { ":point_right:", "👉" },
                { ":point_left:", "👈" },
                { ":raised_hands:", "🙌" },
                { ":pray:", "🙏" },
                { ":point_up:", "☝️" },
                { ":clap:", "👏" },
                { ":muscle:", "💪" },
                { ":walking:", "🚶" },
                { ":runner:", "🏃" },
                { ":running:", "🏃" },
                { ":dancer:", "💃" },
                { ":couple:", "👫" },
                { ":family:", "👪" },
                { ":two_men_holding_hands:", "👬" },
                { ":two_women_holding_hands:", "👭" },
                { ":couplekiss:", "💏" },
                { ":couple_with_heart:", "💑" },
                { ":dancers:", "👯" },
                { ":ok_woman:", "🙆" },
                { ":no_good:", "🙅" },
                { ":information_desk_person:", "💁" },
                { ":raising_hand:", "🙋" },
                { ":massage:", "💆" },
                { ":haircut:", "💇" },
                { ":nail_care:", "💅" },
                { ":bride_with_veil:", "👰" },
                { ":person_with_pouting_face:", "🙎" },
                { ":person_frowning:", "🙍" },
                { ":bow:", "🙇" },
                { ":tophat:", "🎩" },
                { ":crown:", "👑" },
                { ":womans_hat:", "👒" },
                { ":athletic_shoe:", "👟" },
                { ":mans_shoe:", "👞" },
                { ":shoe:", "👞" },
                { ":sandal:", "👡" },
                { ":high_heel:", "👠" },
                { ":boot:", "👢" },
                { ":shirt:", "👕" },
                { ":tshirt:", "👕" },
                { ":necktie:", "👔" },
                { ":womans_clothes:", "👚" },
                { ":dress:", "👗" },
                { ":running_shirt_with_sash:", "🎽" },
                { ":jeans:", "👖" },
                { ":kimono:", "👘" },
                { ":bikini:", "👙" },
                { ":briefcase:", "💼" },
                { ":handbag:", "👜" },
                { ":pouch:", "👝" },
                { ":purse:", "👛" },
                { ":eyeglasses:", "👓" },
                { ":ribbon:", "🎀" },
                { ":closed_umbrella:", "🌂" },
                { ":lipstick:", "💄" },
                { ":yellow_heart:", "💛" },
                { ":blue_heart:", "💙" },
                { ":purple_heart:", "💜" },
                { ":green_heart:", "💚" },
                { ":heart:", "❤" },
                { ":broken_heart:", "💔" },
                { ":heartpulse:", "💗" },
                { ":heartbeat:", "💓" },
                { ":two_hearts:", "💕" },
                { ":sparkling_heart:", "💖" },
                { ":revolving_hearts:", "💞" },
                { ":cupid:", "💘" },
                { ":love_letter:", "💌" },
                { ":kiss:", "💋" },
                { ":ring:", "💍" },
                { ":gem:", "💎" },
                { ":bust_in_silhouette:", "👤" },
                { ":busts_in_silhouette:", "👥" },
                { ":speech_balloon:", "💬" },
                { ":footprints:", "👣" },
                { ":thought_balloon:", "💭" },
                { ":dog:", "🐶" },
                { ":wolf:", "🐺" },
                { ":cat:", "🐱" },
                { ":mouse:", "🐭" },
                { ":hamster:", "🐹" },
                { ":rabbit:", "🐰" },
                { ":frog:", "🐸" },
                { ":tiger:", "🐯" },
                { ":koala:", "🐨" },
                { ":bear:", "🐻" },
                { ":pig:", "🐷" },
                { ":pig_nose:", "🐽" },
                { ":cow:", "🐮" },
                { ":boar:", "🐗" },
                { ":monkey_face:", "🐵" },
                { ":monkey:", "🐒" },
                { ":horse:", "🐴" },
                { ":sheep:", "🐑" },
                { ":elephant:", "🐘" },
                { ":panda_face:", "🐼" },
                { ":penguin:", "🐧" },
                { ":bird:", "🐦" },
                { ":baby_chick:", "🐤" },
                { ":hatched_chick:", "🐥" },
                { ":hatching_chick:", "🐣" },
                { ":chicken:", "🐔" },
                { ":snake:", "🐍" },
                { ":turtle:", "🐢" },
                { ":bug:", "🐛" },
                { ":bee:", "🐝" },
                { ":honeybee:", "🐝" },
                { ":ant:", "🐜" },
                { ":beetle:", "🐞" },
                { ":snail:", "🐌" },
                { ":octopus:", "🐙" },
                { ":shell:", "🐚" },
                { ":tropical_fish:", "🐠" },
                { ":fish:", "🐟" },
                { ":dolphin:", "🐬" },
                { ":flipper:", "🐬" },
                { ":whale:", "🐳" },
                { ":whale2:", "🐋" },
                { ":cow2:", "🐄" },
                { ":ram:", "🐏" },
                { ":rat:", "🐀" },
                { ":water_buffalo:", "🐃" },
                { ":tiger2:", "🐅" },
                { ":rabbit2:", "🐇" },
                { ":dragon:", "🐉" },
                { ":racehorse:", "🐎" },
                { ":goat:", "🐐" },
                { ":rooster:", "🐓" },
                { ":dog2:", "🐕" },
                { ":pig2:", "🐖" },
                { ":mouse2:", "🐁" },
                { ":ox:", "🐂" },
                { ":dragon_face:", "🐲" },
                { ":blowfish:", "🐡" },
                { ":crocodile:", "🐊" },
                { ":camel:", "🐫" },
                { ":dromedary_camel:", "🐪" },
                { ":leopard:", "🐆" },
                { ":cat2:", "🐈" },
                { ":poodle:", "🐩" },
                { ":feet:", "🐾" },
                { ":paw_prints:", "🐾" },
                { ":bouquet:", "💐" },
                { ":cherry_blossom:", "🌸" },
                { ":tulip:", "🌷" },
                { ":four_leaf_clover:", "🍀" },
                { ":rose:", "🌹" },
                { ":sunflower:", "🌻" },
                { ":hibiscus:", "🌺" },
                { ":maple_leaf:", "🍁" },
                { ":leaves:", "🍃" },
                { ":fallen_leaf:", "🍂" },
                { ":herb:", "🌿" },
                { ":ear_of_rice:", "🌾" },
                { ":mushroom:", "🍄" },
                { ":cactus:", "🌵" },
                { ":palm_tree:", "🌴" },
                { ":evergreen_tree:", "🌲" },
                { ":deciduous_tree:", "🌳" },
                { ":chestnut:", "🌰" },
                { ":seedling:", "🌱" },
                { ":blossom:", "🌼" },
                { ":globe_with_meridians:", "🌐" },
                { ":sun_with_face:", "🌞" },
                { ":full_moon_with_face:", "🌝" },
                { ":new_moon_with_face:", "🌚" },
                { ":new_moon:", "🌑" },
                { ":waxing_crescent_moon:", "🌒" },
                { ":first_quarter_moon:", "🌓" },
                { ":moon:", "🌔" },
                { ":waxing_gibbous_moon:", "🌔" },
                { ":full_moon:", "🌕" },
                { ":waning_gibbous_moon:", "🌖" },
                { ":last_quarter_moon:", "🌗" },
                { ":waning_crescent_moon:", "🌘" },
                { ":last_quarter_moon_with_face:", "🌜" },
                { ":first_quarter_moon_with_face:", "🌛" },
                { ":crescent_moon:", "🌙" },
                { ":earth_africa:", "🌍" },
                { ":earth_americas:", "🌎" },
                { ":earth_asia:", "🌏" },
                { ":volcano:", "🌋" },
                { ":milky_way:", "🌌" },
                { ":stars:", "🌠" },
                { ":star:", "⭐" },
                { ":sunny:", "☀️" },
                { ":partly_sunny:", "⛅" },
                { ":cloud:", "☁️" },
                { ":zap:", "⚡" },
                { ":umbrella:", "☔" },
                { ":snowflake:", "❄️" },
                { ":snowman:", "⛄" },
                { ":cyclone:", "🌀" },
                { ":foggy:", "🌁" },
                { ":rainbow:", "🌈" },
                { ":ocean:", "🌊" },
                { ":bamboo:", "🎍" },
                { ":gift_heart:", "💝" },
                { ":dolls:", "🎎" },
                { ":school_satchel:", "🎒" },
                { ":mortar_board:", "🎓" },
                { ":flags:", "🎏" },
                { ":fireworks:", "🎆" },
                { ":sparkler:", "🎇" },
                { ":wind_chime:", "🎐" },
                { ":rice_scene:", "🎑" },
                { ":jack_o_lantern:", "🎃" },
                { ":ghost:", "👻" },
                { ":santa:", "🎅" },
                { ":christmas_tree:", "🎄" },
                { ":gift:", "🎁" },
                { ":tanabata_tree:", "🎋" },
                { ":tada:", "🎉" },
                { ":confetti_ball:", "🎊" },
                { ":balloon:", "🎈" },
                { ":crossed_flags:", "🎌" },
                { ":crystal_ball:", "🔮" },
                { ":movie_camera:", "🎥" },
                { ":camera:", "📷" },
                { ":video_camera:", "📹" },
                { ":vhs:", "📼" },
                { ":cd:", "💿" },
                { ":dvd:", "📀" },
                { ":minidisc:", "💽" },
                { ":floppy_disk:", "💾" },
                { ":computer:", "💻" },
                { ":iphone:", "📱" },
                { ":phone:", "☎️" },
                { ":telephone:", "☎️" },
                { ":telephone_receiver:", "📞" },
                { ":pager:", "📟" },
                { ":fax:", "📠" },
                { ":satellite:", "📡" },
                { ":tv:", "📺" },
                { ":radio:", "📻" },
                { ":loud_sound:", "🔊" },
                { ":sound:", "🔉" },
                { ":speaker:", "🔈" },
                { ":mute:", "🔇" },
                { ":bell:", "🔔" },
                { ":no_bell:", "🔕" },
                { ":loudspeaker:", "📢" },
                { ":mega:", "📣" },
                { ":hourglass_flowing_sand:", "⏳" },
                { ":hourglass:", "⌛" },
                { ":alarm_clock:", "⏰" },
                { ":watch:", "⌚" },
                { ":unlock:", "🔓" },
                { ":lock:", "🔒" },
                { ":lock_with_ink_pen:", "🔏" },
                { ":closed_lock_with_key:", "🔐" },
                { ":key:", "🔑" },
                { ":mag_right:", "🔎" },
                { ":bulb:", "💡" },
                { ":flashlight:", "🔦" },
                { ":high_brightness:", "🔆" },
                { ":low_brightness:", "🔅" },
                { ":electric_plug:", "🔌" },
                { ":battery:", "🔋" },
                { ":mag:", "🔍" },
                { ":bathtub:", "🛁" },
                { ":bath:", "🛀" },
                { ":shower:", "🚿" },
                { ":toilet:", "🚽" },
                { ":wrench:", "🔧" },
                { ":nut_and_bolt:", "🔩" },
                { ":hammer:", "🔨" },
                { ":door:", "🚪" },
                { ":smoking:", "🚬" },
                { ":bomb:", "💣" },
                { ":gun:", "🔫" },
                { ":hocho:", "🔪" },
                { ":knife:", "🔪" },
                { ":pill:", "💊" },
                { ":syringe:", "💉" },
                { ":moneybag:", "💰" },
                { ":yen:", "💴" },
                { ":dollar:", "💵" },
                { ":pound:", "💷" },
                { ":euro:", "💶" },
                { ":credit_card:", "💳" },
                { ":money_with_wings:", "💸" },
                { ":calling:", "📲" },
                { ":e-mail:", "📧" },
                { ":inbox_tray:", "📥" },
                { ":outbox_tray:", "📤" },
                { ":email:", "✉️" },
                { ":envelope:", "✉️" },
                { ":envelope_with_arrow:", "📩" },
                { ":incoming_envelope:", "📨" },
                { ":postal_horn:", "📯" },
                { ":mailbox:", "📫" },
                { ":mailbox_closed:", "📪" },
                { ":mailbox_with_mail:", "📬" },
                { ":mailbox_with_no_mail:", "📭" },
                { ":postbox:", "📮" },
                { ":package:", "📦" },
                { ":memo:", "📝" },
                { ":pencil:", "📝" },
                { ":page_facing_up:", "📄" },
                { ":page_with_curl:", "📃" },
                { ":bookmark_tabs:", "📑" },
                { ":bar_chart:", "📊" },
                { ":chart_with_upwards_trend:", "📈" },
                { ":chart_with_downwards_trend:", "📉" },
                { ":scroll:", "📜" },
                { ":clipboard:", "📋" },
                { ":date:", "📅" },
                { ":calendar:", "📆" },
                { ":card_index:", "📇" },
                { ":file_folder:", "📁" },
                { ":open_file_folder:", "📂" },
                { ":scissors:", "✂️" },
                { ":pushpin:", "📌" },
                { ":paperclip:", "📎" },
                { ":black_nib:", "✒️" },
                { ":pencil2:", "✏️" },
                { ":straight_ruler:", "📏" },
                { ":triangular_ruler:", "📐" },
                { ":closed_book:", "📕" },
                { ":green_book:", "📗" },
                { ":blue_book:", "📘" },
                { ":orange_book:", "📙" },
                { ":notebook:", "📓" },
                { ":notebook_with_decorative_cover:", "📔" },
                { ":ledger:", "📒" },
                { ":books:", "📚" },
                { ":book:", "📖" },
                { ":open_book:", "📖" },
                { ":bookmark:", "🔖" },
                { ":name_badge:", "📛" },
                { ":microscope:", "🔬" },
                { ":telescope:", "🔭" },
                { ":newspaper:", "📰" },
                { ":art:", "🎨" },
                { ":clapper:", "🎬" },
                { ":microphone:", "🎤" },
                { ":headphones:", "🎧" },
                { ":musical_score:", "🎼" },
                { ":musical_note:", "🎵" },
                { ":notes:", "🎶" },
                { ":musical_keyboard:", "🎹" },
                { ":violin:", "🎻" },
                { ":trumpet:", "🎺" },
                { ":saxophone:", "🎷" },
                { ":guitar:", "🎸" },
                { ":space_invader:", "👾" },
                { ":video_game:", "🎮" },
                { ":black_joker:", "🃏" },
                { ":flower_playing_cards:", "🎴" },
                { ":mahjong:", "🀄" },
                { ":game_die:", "🎲" },
                { ":dart:", "🎯" },
                { ":football:", "🏈" },
                { ":basketball:", "🏀" },
                { ":soccer:", "⚽" },
                { ":baseball:", "⚾️" },
                { ":tennis:", "🎾" },
                { ":8ball:", "🎱" },
                { ":rugby_football:", "🏉" },
                { ":bowling:", "🎳" },
                { ":golf:", "⛳" },
                { ":mountain_bicyclist:", "🚵" },
                { ":bicyclist:", "🚴" },
                { ":checkered_flag:", "🏁" },
                { ":horse_racing:", "🏇" },
                { ":trophy:", "🏆" },
                { ":ski:", "🎿" },
                { ":snowboarder:", "🏂" },
                { ":swimmer:", "🏊" },
                { ":surfer:", "🏄" },
                { ":fishing_pole_and_fish:", "🎣" },
                { ":coffee:", "☕" },
                { ":tea:", "🍵" },
                { ":sake:", "🍶" },
                { ":baby_bottle:", "🍼" },
                { ":beer:", "🍺" },
                { ":beers:", "🍻" },
                { ":cocktail:", "🍸" },
                { ":tropical_drink:", "🍹" },
                { ":wine_glass:", "🍷" },
                { ":fork_and_knife:", "🍴" },
                { ":pizza:", "🍕" },
                { ":hamburger:", "🍔" },
                { ":fries:", "🍟" },
                { ":poultry_leg:", "🍗" },
                { ":meat_on_bone:", "🍖" },
                { ":spaghetti:", "🍝" },
                { ":curry:", "🍛" },
                { ":fried_shrimp:", "🍤" },
                { ":bento:", "🍱" },
                { ":sushi:", "🍣" },
                { ":fish_cake:", "🍥" },
                { ":rice_ball:", "🍙" },
                { ":rice_cracker:", "🍘" },
                { ":rice:", "🍚" },
                { ":ramen:", "🍜" },
                { ":stew:", "🍲" },
                { ":oden:", "🍢" },
                { ":dango:", "🍡" },
                { ":egg:", "🍳" },
                { ":bread:", "🍞" },
                { ":doughnut:", "🍩" },
                { ":custard:", "🍮" },
                { ":icecream:", "🍦" },
                { ":ice_cream:", "🍨" },
                { ":shaved_ice:", "🍧" },
                { ":birthday:", "🎂" },
                { ":cake:", "🍰" },
                { ":cookie:", "🍪" },
                { ":chocolate_bar:", "🍫" },
                { ":candy:", "🍬" },
                { ":lollipop:", "🍭" },
                { ":honey_pot:", "🍯" },
                { ":apple:", "🍎" },
                { ":green_apple:", "🍏" },
                { ":tangerine:", "🍊" },
                { ":lemon:", "🍋" },
                { ":cherries:", "🍒" },
                { ":grapes:", "🍇" },
                { ":watermelon:", "🍉" },
                { ":strawberry:", "🍓" },
                { ":peach:", "🍑" },
                { ":melon:", "🍈" },
                { ":banana:", "🍌" },
                { ":pear:", "🍐" },
                { ":pineapple:", "🍍" },
                { ":sweet_potato:", "🍠" },
                { ":eggplant:", "🍆" },
                { ":tomato:", "🍅" },
                { ":corn:", "🌽" },
                { ":house:", "🏠" },
                { ":house_with_garden:", "🏡" },
                { ":school:", "🏫" },
                { ":office:", "🏢" },
                { ":post_office:", "🏣" },
                { ":hospital:", "🏥" },
                { ":bank:", "🏦" },
                { ":convenience_store:", "🏪" },
                { ":love_hotel:", "🏩" },
                { ":hotel:", "🏨" },
                { ":wedding:", "💒" },
                { ":church:", "⛪" },
                { ":department_store:", "🏬" },
                { ":european_post_office:", "🏤" },
                { ":city_sunrise:", "🌇" },
                { ":city_sunset:", "🌆" },
                { ":japanese_castle:", "🏯" },
                { ":european_castle:", "🏰" },
                { ":tent:", "⛺" },
                { ":factory:", "🏭" },
                { ":tokyo_tower:", "🗼" },
                { ":japan:", "🗾" },
                { ":mount_fuji:", "🗻" },
                { ":sunrise_over_mountains:", "🌄" },
                { ":sunrise:", "🌅" },
                { ":night_with_stars:", "🌃" },
                { ":statue_of_liberty:", "🗽" },
                { ":bridge_at_night:", "🌉" },
                { ":carousel_horse:", "🎠" },
                { ":ferris_wheel:", "🎡" },
                { ":fountain:", "⛲" },
                { ":roller_coaster:", "🎢" },
                { ":ship:", "🚢" },
                { ":boat:", "⛵" },
                { ":sailboat:", "⛵" },
                { ":speedboat:", "🚤" },
                { ":rowboat:", "🚣" },
                { ":anchor:", "⚓" },
                { ":rocket:", "🚀" },
                { ":airplane:", "✈️" },
                { ":seat:", "💺" },
                { ":helicopter:", "🚁" },
                { ":steam_locomotive:", "🚂" },
                { ":tram:", "🚊" },
                { ":station:", "🚉" },
                { ":mountain_railway:", "🚞" },
                { ":train2:", "🚆" },
                { ":bullettrain_side:", "🚄" },
                { ":bullettrain_front:", "🚅" },
                { ":light_rail:", "🚈" },
                { ":metro:", "🚇" },
                { ":monorail:", "🚝" },
                { ":train:", "🚋" },
                { ":railway_car:", "🚃" },
                { ":trolleybus:", "🚎" },
                { ":bus:", "🚌" },
                { ":oncoming_bus:", "🚍" },
                { ":blue_car:", "🚙" },
                { ":oncoming_automobile:", "🚘" },
                { ":car:", "🚗" },
                { ":red_car:", "🚗" },
                { ":taxi:", "🚕" },
                { ":oncoming_taxi:", "🚖" },
                { ":articulated_lorry:", "🚛" },
                { ":truck:", "🚚" },
                { ":rotating_light:", "🚨" },
                { ":police_car:", "🚓" },
                { ":oncoming_police_car:", "🚔" },
                { ":fire_engine:", "🚒" },
                { ":ambulance:", "🚑" },
                { ":minibus:", "🚐" },
                { ":bike:", "🚲" },
                { ":aerial_tramway:", "🚡" },
                { ":suspension_railway:", "🚟" },
                { ":mountain_cableway:", "🚠" },
                { ":tractor:", "🚜" },
                { ":barber:", "💈" },
                { ":busstop:", "🚏" },
                { ":ticket:", "🎫" },
                { ":vertical_traffic_light:", "🚦" },
                { ":traffic_light:", "🚥" },
                { ":warning:", "⚠️" },
                { ":construction:", "🚧" },
                { ":beginner:", "🔰" },
                { ":fuelpump:", "⛽" },
                { ":izakaya_lantern:", "🏮" },
                { ":lantern:", "🏮" },
                { ":slot_machine:", "🎰" },
                { ":hotsprings:", "♨️" },
                { ":moyai:", "🗿" },
                { ":circus_tent:", "🎪" },
                { ":performing_arts:", "🎭" },
                { ":round_pushpin:", "📍" },
                { ":triangular_flag_on_post:", "🚩" },
                { ":jp:", "🇯🇵" },
                { ":kr:", "🇰🇷" },
                { ":de:", "🇩🇪" },
                { ":cn:", "🇨🇳" },
                { ":us:", "🇺🇸" },
                { ":fr:", "🇫🇷" },
                { ":es:", "🇪🇸" },
                { ":it:", "🇮🇹" },
                { ":ru:", "🇷🇺" },
                { ":gb:", "🇬🇧" },
                { ":uk:", "🇬🇧" },
                { ":one:", "1️⃣" },
                { ":two:", "2️⃣" },
                { ":three:", "3️⃣" },
                { ":four:", "4️⃣" },
                { ":five:", "5️⃣" },
                { ":six:", "6️⃣" },
                { ":seven:", "7️⃣" },
                { ":eight:", "8️⃣" },
                { ":nine:", "9️⃣" },
                { ":zero:", "0️⃣" },
                { ":keycap_ten:", "🔟" },
                { ":hash:", "#️⃣" },
                { ":symbols:", "🔣" },
                { ":arrow_up:", "⬆️" },
                { ":arrow_down:", "⬇️" },
                { ":arrow_left:", "⬅️" },
                { ":arrow_right:", "➡️" },
                { ":capital_abcd:", "🔠" },
                { ":abcd:", "🔡" },
                { ":abc:", "🔤" },
                { ":arrow_upper_right:", "↗️" },
                { ":arrow_upper_left:", "↖️" },
                { ":arrow_lower_right:", "↘️" },
                { ":arrow_lower_left:", "↙️" },
                { ":left_right_arrow:", "↔️" },
                { ":arrow_up_down:", "↕️" },
                { ":arrows_counterclockwise:", "🔄" },
                { ":arrow_backward:", "◀️" },
                { ":arrow_forward:", "▶️" },
                { ":arrow_up_small:", "🔼" },
                { ":arrow_down_small:", "🔽" },
                { ":leftwards_arrow_with_hook:", "↩️" },
                { ":arrow_right_hook:", "↪️" },
                { ":information_source:", "ℹ️" },
                { ":rewind:", "⏪" },
                { ":fast_forward:", "⏩" },
                { ":arrow_double_up:", "⏫" },
                { ":arrow_double_down:", "⏬" },
                { ":arrow_heading_down:", "⤵️" },
                { ":arrow_heading_up:", "⤴️" },
                { ":ok:", "🆗" },
                { ":twisted_rightwards_arrows:", "🔀" },
                { ":repeat:", "🔁" },
                { ":repeat_one:", "🔂" },
                { ":new:", "🆕" },
                { ":up:", "🆙" },
                { ":cool:", "🆒" },
                { ":free:", "🆓" },
                { ":ng:", "🆖" },
                { ":signal_strength:", "📶" },
                { ":cinema:", "🎦" },
                { ":koko:", "🈁" },
                { ":u6307:", "🈯" },
                { ":u7a7a:", "🈳" },
                { ":u6e80:", "🈵" },
                { ":u5408:", "🈴" },
                { ":u7981:", "🈲" },
                { ":ideograph_advantage:", "🉐" },
                { ":u5272:", "🈹" },
                { ":u55b6:", "🈺" },
                { ":u6709:", "🈶" },
                { ":u7121:", "🈚" },
                { ":restroom:", "🚻" },
                { ":mens:", "🚹" },
                { ":womens:", "🚺" },
                { ":baby_symbol:", "🚼" },
                { ":wc:", "🚾" },
                { ":potable_water:", "🚰" },
                { ":put_litter_in_its_place:", "🚮" },
                { ":parking:", "🅿️" },
                { ":wheelchair:", "♿" },
                { ":no_smoking:", "🚭" },
                { ":u6708:", "🈷️" },
                { ":u7533:", "🈸" },
                { ":sa:", "🈂️" },
                { ":m:", "Ⓜ️" },
                { ":passport_control:", "🛂" },
                { ":baggage_claim:", "🛄" },
                { ":left_luggage:", "🛅" },
                { ":customs:", "🛃" },
                { ":accept:", "🉑" },
                { ":secret:", "㊙️" },
                { ":congratulations:", "㊗️" },
                { ":cl:", "🆑" },
                { ":sos:", "🆘" },
                { ":id:", "🆔" },
                { ":no_entry_sign:", "🚫" },
                { ":underage:", "🔞" },
                { ":no_mobile_phones:", "📵" },
                { ":do_not_litter:", "🚯" },
                { ":non-potable_water:", "🚱" },
                { ":no_bicycles:", "🚳" },
                { ":no_pedestrians:", "🚷" },
                { ":children_crossing:", "🚸" },
                { ":no_entry:", "⛔" },
                { ":eight_spoked_asterisk:", "✳️" },
                { ":sparkle:", "❇️" },
                { ":negative_squared_cross_mark:", "❎" },
                { ":white_check_mark:", "✅" },
                { ":eight_pointed_black_star:", "✴️" },
                { ":heart_decoration:", "💟" },
                { ":vs:", "🆚" },
                { ":vibration_mode:", "📳" },
                { ":mobile_phone_off:", "📴" },
                { ":a:", "🅰️" },
                { ":b:", "🅱️" },
                { ":ab:", "🆎" },
                { ":o2:", "🅾️" },
                { ":diamond_shape_with_a_dot_inside:", "💠" },
                { ":loop:", "➿" },
                { ":recycle:", "♻️" },
                { ":aries:", "♈" },
                { ":taurus:", "♉" },
                { ":gemini:", "♊" },
                { ":cancer:", "♋" },
                { ":leo:", "♌" },
                { ":virgo:", "♍" },
                { ":libra:", "♎" },
                { ":scorpius:", "♏" },
                { ":sagittarius:", "♐" },
                { ":capricorn:", "♑" },
                { ":aquarius:", "♒" },
                { ":pisces:", "♓" },
                { ":ophiuchus:", "⛎" },
                { ":six_pointed_star:", "🔯" },
                { ":atm:", "🏧" },
                { ":chart:", "💹" },
                { ":heavy_dollar_sign:", "💲" },
                { ":currency_exchange:", "💱" },
                { ":copyright:", "©️" },
                { ":registered:", "®️" },
                { ":tm:", "™️" },
                { ":x:", "❌" },
                { ":bangbang:", "‼️" },
                { ":interrobang:", "⁉️" },
                { ":exclamation:", "❗" },
                { ":heavy_exclamation_mark:", "❗" },
                { ":question:", "❓" },
                { ":grey_exclamation:", "❕" },
                { ":grey_question:", "❔" },
                { ":o:", "⭕" },
                { ":top:", "🔝" },
                { ":end:", "🔚" },
                { ":back:", "🔙" },
                { ":on:", "🔛" },
                { ":soon:", "🔜" },
                { ":arrows_clockwise:", "🔃" },
                { ":clock12:", "🕛" },
                { ":clock1230:", "🕧" },
                { ":clock1:", "🕐" },
                { ":clock130:", "🕜" },
                { ":clock2:", "🕑" },
                { ":clock230:", "🕝" },
                { ":clock3:", "🕒" },
                { ":clock330:", "🕞" },
                { ":clock4:", "🕓" },
                { ":clock430:", "🕟" },
                { ":clock5:", "🕔" },
                { ":clock530:", "🕠" },
                { ":clock6:", "🕕" },
                { ":clock7:", "🕖" },
                { ":clock8:", "🕗" },
                { ":clock9:", "🕘" },
                { ":clock10:", "🕙" },
                { ":clock11:", "🕚" },
                { ":clock630:", "🕡" },
                { ":clock730:", "🕢" },
                { ":clock830:", "🕣" },
                { ":clock930:", "🕤" },
                { ":clock1030:", "🕥" },
                { ":clock1130:", "🕦" },
                { ":heavy_multiplication_x:", "✖️" },
                { ":heavy_plus_sign:", "➕" },
                { ":heavy_minus_sign:", "➖" },
                { ":heavy_division_sign:", "➗" },
                { ":spades:", "♠️" },
                { ":hearts:", "♥️" },
                { ":clubs:", "♣️" },
                { ":diamonds:", "♦️" },
                { ":white_flower:", "💮" },
                { ":heavy_check_mark:", "✔️" },
                { ":ballot_box_with_check:", "☑️" },
                { ":radio_button:", "🔘" },
                { ":link:", "🔗" },
                { ":curly_loop:", "➰" },
                { ":wavy_dash:", "〰️" },
                { ":part_alternation_mark:", "〽️" },
                { ":trident:", "🔱" },
                { ":black_medium_square:", "◼️" },
                { ":white_medium_square:", "◻️" },
                { ":black_medium_small_square:", "◾" },
                { ":white_medium_small_square:", "◽" },
                { ":black_small_square:", "▪️" },
                { ":white_small_square:", "▫️" },
                { ":small_red_triangle:", "🔺" },
                { ":black_square_button:", "🔲" },
                { ":white_square_button:", "🔳" },
                { ":black_circle:", "⚫" },
                { ":white_circle:", "⚪" },
                { ":red_circle:", "🔴" },
                { ":large_blue_circle:", "🔵" },
                { ":small_red_triangle_down:", "🔻" },
                { ":white_large_square:", "⬜" },
                { ":black_large_square:", "⬛" },
                { ":large_orange_diamond:", "🔶" },
                { ":large_blue_diamond:", "🔷" },
                { ":small_orange_diamond:", "🔸" },
                { ":small_blue_diamond:", "🔹" },

                // Custom additions
                { ":custom_arrow_left:", "←" },
                { ":custom_arrow_right:", "→" },
                { ":custom_arrow_left_right:", "↔" },
                { ":custom_arrow_left_strong:", "⇐" },
                { ":custom_arrow_right_strong:", "⇒" },
                { ":custom_arrow_left_right_strong:", "⇔" },
                { ":rofl:", "🤣" },
                { ":slightly_smiling_face:", "🙂" },
                { ":upside_down_face:", "🙃" },
                { ":star_struck:", "🤩" },
                { ":zany_face:", "🤪" },
                { ":money_mouth_face:", "🤑" },
                { ":hugs:", "🤗" },
                { ":hand_over_mouth:", "🤭" },
                { ":shushing_face:", "🤫" },
                { ":thinking:", "🤔" },
                { ":zipper_mouth_face:", "🤐" },
                { ":raised_eyebrow:", "🤨" },
                { ":roll_eyes:", "🙄" },
                { ":lying_face:", "🤥" },
                { ":drooling_face:", "🤤" },
                { ":face_with_thermometer:", "🤒" },
                { ":face_with_head_bandage:", "🤕" },
                { ":nauseated_face:", "🤢" },
                { ":vomiting_face:", "🤮" },
                { ":sneezing_face:", "🤧" },
                { ":exploding_head:", "🤯" },
                { ":cowboy_hat_face:", "🤠" },
                { ":nerd_face:", "🤓" },
                { ":monocle_face:", "🧐" },
                { ":slightly_frowning_face:", "🙁" },
                { ":frowning_face:", "☹️" },
                { ":cursing_face:", "🤬" },
                { ":skull_and_crossbones:", "☠" },
                { ":clown_face:", "🤡" },
                { ":robot:", "🤖" },
                { ":heavy_heart_exclamation:", "❣️" },
                { ":orange_heart:", "🧡" },
                { ":black_heart:", "🖤" },
                { ":hole:", "🕳️" },
                { ":eye_speech_bubble:", "👁‍🗨" },
                { ":left_speech_bubble:", "🗨" },
                { ":right_anger_bubble:", "🗯" },
                { ":raised_back_of_hand:", "🤚" },
                { ":raised_hand_with_fingers_splayed:", "🖐️" },
                { ":vulcan_salute:", "🖖" },
                { ":crossed_fingers:", "🤞" },
                { ":love_you_gesture:", "🤟" },
                { ":metal:", "🤘" },
                { ":call_me_hand:", "🤙" },
                { ":middle_finger:", "🖕" },
                { ":fist_raised:", "✊" },
                { ":fist_oncoming:", "👊" },
                { ":fist_left:", "🤛" },
                { ":fist_right:", "🤜" },
                { ":palms_up_together:", "🤲" },
                { ":handshake:", "🤝" },
                { ":writing_hand:", "✍️" },
                { ":selfie:", "🤳" },
                { ":brain:", "🧠" },
                { ":eye:", "👁️" },
                { ":child:", "🧒" },
                { ":adult:", "🧑" },
                { ":blond_haired_person:", "👱" },
                { ":bearded_person:", "🧔" },
                { ":blond_haired_man:", "👱‍♂️" },
                { ":blond_haired_woman:", "👱‍♀️" },
                { ":older_adult:", "🧓" },
                { ":frowning_person:", "🙍" },
                { ":frowning_man:", "🙍‍♂️" },
                { ":frowning_woman:", "🙍‍♀️" },
                { ":pouting_face:", "🙎" },
                { ":pouting_man:", "🙎‍♂️" },
                { ":pouting_woman:", "🙎‍♀️" },
                { ":no_good_man:", "🙅‍♂️" },
                { ":no_good_woman:", "🙅‍♀️" },
                { ":ok_person:", "🙆" },
                { ":ok_man:", "🙆‍♂️" },
                { ":tipping_hand_person:", "💁" },
                { ":tipping_hand_man:", "💁‍♂️" },
                { ":tipping_hand_woman:", "💁‍♀️" },
                { ":raising_hand_man:", "🙋‍♂️" },
                { ":raising_hand_woman:", "🙋‍♀️" },
                { ":bowing_man:", "🙇‍♂️" },
                { ":bowing_woman:", "🙇‍♀️" },
                { ":facepalm:", "🤦" },
                { ":man_facepalming:", "🤦‍♂️" },
                { ":woman_facepalming:", "🤦‍♀️" },
                { ":shrug:", "🤷" },
                { ":man_shrugging:", "🤷‍♂️" },
                { ":woman_shrugging:", "🤷‍♀️" },
                { ":man_health_worker:", "👨‍⚕️" },
                { ":woman_health_worker:", "👩‍⚕️" },
                { ":man_student:", "👨‍🎓" },
                { ":woman_student:", "👩‍🎓" },
                { ":man_teacher:", "👨‍🏫" },
                { ":woman_teacher:", "👩‍🏫" },
                { ":man_judge:", "👨‍⚖️" },
                { ":woman_judge:", "👩‍⚖️" },
                { ":man_farmer:", "👨‍🌾" },
                { ":woman_farmer:", "👩‍🌾" },
                { ":man_cook:", "👨‍🍳" },
                { ":woman_cook:", "👩‍🍳" },
                { ":man_mechanic:", "👨‍🔧" },
                { ":woman_mechanic:", "👩‍🔧" },
                { ":man_factory_worker:", "👨‍🏭" },
                { ":woman_factory_worker:", "👩‍🏭" },
                { ":man_office_worker:", "👨‍💼" },
                { ":woman_office_worker:", "👩‍💼" },
                { ":man_scientist:", "👨‍🔬" },
                { ":woman_scientist:", "👩‍🔬" },
                { ":man_technologist:", "👨‍💻" },
                { ":woman_technologist:", "👩‍💻" },
                { ":man_singer:", "👨‍🎤" },
                { ":woman_singer:", "👩‍🎤" },
                { ":man_artist:", "👨‍🎨" },
                { ":woman_artist:", "👩‍🎨" },
                { ":man_pilot:", "👨‍✈️" },
                { ":woman_pilot:", "👩‍✈️" },
                { ":man_astronaut:", "👨‍🚀" },
                { ":woman_astronaut:", "👩‍🚀" },
                { ":man_firefighter:", "👨‍🚒" },
                { ":woman_firefighter:", "👩‍🚒" },
                { ":police_officer:", "👮" },
                { ":policeman:", "👮‍♂️" },
                { ":policewoman:", "👮‍♀️" },
                { ":detective:", "🕵️" },
                { ":male_detective:", "🕵️‍♂️" },
                { ":female_detective:", "🕵️‍♀️" },
                { ":guard:", "💂" },
                { ":guardswoman:", "💂‍♀️" },
                { ":construction_worker_man:", "👷‍♂️" },
                { ":construction_worker_woman:", "👷‍♀️" },
                { ":prince:", "🤴" },
                { ":person_with_turban:", "👳" },
                { ":woman_with_turban:", "👳‍♀️" },
                { ":woman_with_headscarf:", "🧕" },
                { ":man_in_tuxedo:", "🤵" },
                { ":pregnant_woman:", "🤰" },
                { ":breast_feeding:", "🤱" },
                { ":mrs_claus:", "🤶" },
                { ":mage:", "🧙" },
                { ":mage_man:", "🧙‍♂️" },
                { ":mage_woman:", "🧙‍♀️" },
                { ":fairy:", "🧚" },
                { ":fairy_man:", "🧚‍♂️" },
                { ":fairy_woman:", "🧚‍♀️" },
                { ":vampire:", "🧛" },
                { ":vampire_man:", "🧛‍♂️" },
                { ":vampire_woman:", "🧛‍♀️" },
                { ":merperson:", "🧜" },
                { ":merman:", "🧜‍♂️" },
                { ":mermaid:", "🧜‍♀️" },
                { ":elf:", "🧝" },
                { ":elf_man:", "🧝‍♂️" },
                { ":elf_woman:", "🧝‍♀️" },
                { ":genie:", "🧞" },
                { ":genie_man:", "🧞‍♂️" },
                { ":genie_woman:", "🧞‍♀️" },
                { ":zombie:", "🧟" },
                { ":zombie_man:", "🧟‍♂️" },
                { ":zombie_woman:", "🧟‍♀️" },
                { ":massage_man:", "💆‍♂️" },
                { ":massage_woman:", "💆‍♀️" },
                { ":haircut_man:", "💇‍♂️" },
                { ":haircut_woman:", "💇‍♀️" },
                { ":walking_man:", "🚶‍♂️" },
                { ":walking_woman:", "🚶‍♀️" },
                { ":running_man:", "🏃‍♂️" },
                { ":running_woman:", "🏃‍♀️" },
                { ":woman_dancing:", "💃" },
                { ":man_dancing:", "🕺" },
                { ":business_suit_levitating:", "🕴️" },
                { ":dancing_men:", "👯‍♂️" },
                { ":dancing_women:", "👯‍♀️" },
                { ":sauna_person:", "🧖" },
                { ":sauna_man:", "🧖‍♂️" },
                { ":sauna_woman:", "🧖‍♀️" },
                { ":climbing:", "🧗" },
                { ":climbing_man:", "🧗‍♂️" },
                { ":climbing_woman:", "🧗‍♀️" },
                { ":person_fencing:", "🤺" },
                { ":skier:", "⛷️" },
                { ":golfing:", "🏌️" },
                { ":golfing_man:", "🏌️‍♂️" },
                { ":golfing_woman:", "🏌️‍♀️" },
                { ":surfing_man:", "🏄‍♂️" },
                { ":surfing_woman:", "🏄‍♀️" },
                { ":rowing_man:", "🚣‍♂️" },
                { ":rowing_woman:", "🚣‍♀️" },
                { ":swimming_man:", "🏊‍♂️" },
                { ":swimming_woman:", "🏊‍♀️" },
                { ":bouncing_ball_person:", "⛹️" },
                { ":bouncing_ball_man:", "⛹️‍♂️" },
                { ":bouncing_ball_woman:", "⛹️‍♀️" },
                { ":weight_lifting:", "🏋️" },
                { ":weight_lifting_man:", "🏋️‍♂️" },
                { ":weight_lifting_woman:", "🏋️‍♀️" },
                { ":biking_man:", "🚴‍♂️" },
                { ":biking_woman:", "🚴‍♀️" },
                { ":mountain_biking_man:", "🚵‍♂️" },
                { ":mountain_biking_woman:", "🚵‍♀️" },
                { ":cartwheeling:", "🤸" },
                { ":man_cartwheeling:", "🤸‍♂️" },
                { ":woman_cartwheeling:", "🤸‍♀️" },
                { ":wrestling:", "🤼" },
                { ":men_wrestling:", "🤼‍♂️" },
                { ":women_wrestling:", "🤼‍♀️" },
                { ":water_polo:", "🤽" },
                { ":man_playing_water_polo:", "🤽‍♂️" },
                { ":woman_playing_water_polo:", "🤽‍♀️" },
                { ":handball_person:", "🤾" },
                { ":man_playing_handball:", "🤾‍♂️" },
                { ":woman_playing_handball:", "🤾‍♀️" },
                { ":juggling_person:", "🤹" },
                { ":man_juggling:", "🤹‍♂️" },
                { ":woman_juggling:", "🤹‍♀️" },
                { ":lotus_position:", "🧘" },
                { ":lotus_position_man:", "🧘‍♂️" },
                { ":lotus_position_woman:", "🧘‍♀️" },
                { ":sleeping_bed:", "🛌" },
                { ":people_holding_hands:", "🧑‍🤝‍🧑" },
                { ":couplekiss_man_woman:", "👩‍❤️‍💋‍👨" },
                { ":couplekiss_man_man:", "👨‍❤️‍💋‍👨" },
                { ":couplekiss_woman_woman:", "👩‍❤️‍💋‍👩" },
                { ":couple_with_heart_woman_man:", "👩‍❤️‍👨" },
                { ":couple_with_heart_man_man:", "👨‍❤️‍👨" },
                { ":couple_with_heart_woman_woman:", "👩‍❤️‍👩" },
                { ":family_man_woman_boy:", "👨‍👩‍👦" },
                { ":family_man_woman_girl:", "👨‍👩‍👧" },
                { ":family_man_woman_girl_boy:", "👨‍👩‍👧‍👦" },
                { ":family_man_woman_boy_boy:", "👨‍👩‍👦‍👦" },
                { ":family_man_woman_girl_girl:", "👨‍👩‍👧‍👧" },
                { ":family_man_man_boy:", "👨‍👨‍👦" },
                { ":family_man_man_girl:", "👨‍👨‍👧" },
                { ":family_man_man_girl_boy:", "👨‍👨‍👧‍👦" },
                { ":family_man_man_boy_boy:", "👨‍👨‍👦‍👦" },
                { ":family_man_man_girl_girl:", "👨‍👨‍👧‍👧" },
                { ":family_woman_woman_boy:", "👩‍👩‍👦" },
                { ":family_woman_woman_girl:", "👩‍👩‍👧" },
                { ":family_woman_woman_girl_boy:", "👩‍👩‍👧‍👦" },
                { ":family_woman_woman_boy_boy:", "👩‍👩‍👦‍👦" },
                { ":family_woman_woman_girl_girl:", "👩‍👩‍👧‍👧" },
                { ":family_man_boy:", "👨‍👦" },
                { ":family_man_boy_boy:", "👨‍👦‍👦" },
                { ":family_man_girl:", "👨‍👧" },
                { ":family_man_girl_boy:", "👨‍👧‍👦" },
                { ":family_man_girl_girl:", "👨‍👧‍👧" },
                { ":family_woman_boy:", "👩‍👦" },
                { ":family_woman_boy_boy:", "👩‍👦‍👦" },
                { ":family_woman_girl:", "👩‍👧" },
                { ":family_woman_girl_boy:", "👩‍👧‍👦" },
                { ":family_woman_girl_girl:", "👩‍👧‍👧" },
                { ":speaking_head:", "🗣️" },
                { ":gorilla:", "🦍" },
                { ":fox_face:", "🦊" },
                { ":lion:", "🦁" },
                { ":unicorn:", "🦄" },
                { ":zebra:", "🦓" },
                { ":deer:", "🦌" },
                { ":giraffe:", "🦒" },
                { ":rhinoceros:", "🦏" },
                { ":chipmunk:", "🐿️" },
                { ":hedgehog:", "🦔" },
                { ":bat:", "🦇" },
                { ":turkey:", "🦃" },
                { ":dove:", "🕊️" },
                { ":eagle:", "🦅" },
                { ":duck:", "🦆" },
                { ":owl:", "🦉" },
                { ":lizard:", "🦎" },
                { ":sauropod:", "🦕" },
                { ":t-rex:", "🦖" },
                { ":shark:", "🦈" },
                { ":butterfly:", "🦋" },
                { ":cricket:", "🦗" },
                { ":spider:", "🕷️" },
                { ":spider_web:", "🕸️" },
                { ":scorpion:", "🦂" },
                { ":rosette:", "🏵️" },
                { ":wilted_flower:", "🥀" },
                { ":shamrock:", "☘️" },
                { ":kiwi_fruit:", "🥝" },
                { ":coconut:", "🥥" },
                { ":avocado:", "🥑" },
                { ":potato:", "🥔" },
                { ":carrot:", "🥕" },
                { ":hot_pepper:", "🌶️" },
                { ":cucumber:", "🥒" },
                { ":broccoli:", "🥦" },
                { ":peanuts:", "🥜" },
                { ":croissant:", "🥐" },
                { ":baguette_bread:", "🥖" },
                { ":pretzel:", "🥨" },
                { ":pancakes:", "🥞" },
                { ":cheese:", "🧀" },
                { ":cut_of_meat:", "🥩" },
                { ":bacon:", "🥓" },
                { ":hotdog:", "🌭" },
                { ":sandwich:", "🥪" },
                { ":taco:", "🌮" },
                { ":burrito:", "🌯" },
                { ":stuffed_flatbread:", "🥙" },
                { ":fried_egg:", "🍳" },
                { ":shallow_pan_of_food:", "🥘" },
                { ":bowl_with_spoon:", "🥣" },
                { ":green_salad:", "🥗" },
                { ":popcorn:", "🍿" },
                { ":canned_food:", "🥫" },
                { ":dumpling:", "🥟" },
                { ":fortune_cookie:", "🥠" },
                { ":takeout_box:", "🥡" },
                { ":crab:", "🦀" },
                { ":shrimp:", "🦐" },
                { ":squid:", "🦑" },
                { ":pie:", "🥧" },
                { ":milk_glass:", "🥛" },
                { ":champagne:", "🍾" },
                { ":clinking_glasses:", "🥂" },
                { ":tumbler_glass:", "🥃" },
                { ":cup_with_straw:", "🥤" },
                { ":chopsticks:", "🥢" },
                { ":plate_with_cutlery:", "🍽️" },
                { ":spoon:", "🥄" },
                { ":amphora:", "🏺" },
                { ":world_map:", "🗺️" },
                { ":mountain_snow:", "🏔️" },
                { ":mountain:", "⛰️" },
                { ":camping:", "🏕️" },
                { ":beach_umbrella:", "🏖️" },
                { ":desert:", "🏜️" },
                { ":desert_island:", "🏝️" },
                { ":national_park:", "🏞️" },
                { ":stadium:", "🏟️" },
                { ":classical_building:", "🏛️" },
                { ":building_construction:", "🏗️" },
                { ":houses:", "🏘️" },
                { ":derelict_house:", "🏚️" },
                { ":mosque:", "🕌" },
                { ":synagogue:", "🕍" },
                { ":shinto_shrine:", "⛩️" },
                { ":kaaba:", "🕋" },
                { ":cityscape:", "🏙️" },
                { ":racing_car:", "🏎️" },
                { ":motorcycle:", "🏍️" },
                { ":motor_scooter:", "🛵" },
                { ":kick_scooter:", "🛴" },
                { ":motorway:", "🛣️" },
                { ":railway_track:", "🛤️" },
                { ":oil_drum:", "🛢️" },
                { ":stop_sign:", "🛑" },
                { ":canoe:", "🛶" },
                { ":passenger_ship:", "🛳️" },
                { ":ferry:", "⛴️" },
                { ":motor_boat:", "🛥️" },
                { ":small_airplane:", "🛩️" },
                { ":flight_departure:", "🛫" },
                { ":flight_arrival:", "🛬" },
                { ":artificial_satellite:", "🛰️" },
                { ":flying_saucer:", "🛸" },
                { ":bellhop_bell:", "🛎️" },
                { ":stopwatch:", "⏱️" },
                { ":timer_clock:", "⏲️" },
                { ":mantelpiece_clock:", "🕰️" },
                { ":thermometer:", "🌡️" },
                { ":cloud_with_lightning_and_rain:", "⛈️" },
                { ":sun_behind_small_cloud:", "🌤️" },
                { ":sun_behind_large_cloud:", "🌥️" },
                { ":sun_behind_rain_cloud:", "🌦️" },
                { ":cloud_with_rain:", "🌧️" },
                { ":cloud_with_snow:", "🌨️" },
                { ":cloud_with_lightning:", "🌩️" },
                { ":tornado:", "🌪️" },
                { ":fog:", "🌫️" },
                { ":wind_face:", "🌬️" },
                { ":open_umbrella:", "☂️" },
                { ":parasol_on_ground:", "⛱️" },
                { ":snowman_with_snow:", "☃️" },
                { ":comet:", "☄️" },
                { ":reminder_ribbon:", "🎗️" },
                { ":tickets:", "🎟️" },
                { ":medal_military:", "🎖️" },
                { ":medal_sports:", "🏅" },
                { ":1st_place_medal:", "🥇" },
                { ":2nd_place_medal:", "🥈" },
                { ":3rd_place_medal:", "🥉" },
                { ":volleyball:", "🏐" },
                { ":cricket_game:", "🏏" },
                { ":field_hockey:", "🏑" },
                { ":ice_hockey:", "🏒" },
                { ":ping_pong:", "🏓" },
                { ":badminton:", "🏸" },
                { ":boxing_glove:", "🥊" },
                { ":martial_arts_uniform:", "🥋" },
                { ":goal_net:", "🥅" },
                { ":ice_skate:", "⛸️" },
                { ":sled:", "🛷" },
                { ":curling_stone:", "🥌" },
                { ":joystick:", "🕹" },
                { ":chess_pawn:", "♟️" },
                { ":framed_picture:", "🖼️" },
                { ":dark_sunglasses:", "🕶️" },
                { ":scarf:", "🧣" },
                { ":gloves:", "🧤" },
                { ":coat:", "🧥" },
                { ":socks:", "🧦" },
                { ":shopping:", "🛍️" },
                { ":billed_cap:", "🧢" },
                { ":rescue_worker_helmet:", "⛑️" },
                { ":prayer_beads:", "📿" },
                { ":studio_microphone:", "🎙️" },
                { ":level_slider:", "🎚️" },
                { ":control_knobs:", "🎛️" },
                { ":drum:", "🥁" },
                { ":desktop_computer:", "🖥️" },
                { ":printer:", "🖨️" },
                { ":keyboard:", "⌨️" },
                { ":computer_mouse:", "🖱️" },
                { ":trackball:", "🖲️" },
                { ":film_strip:", "🎞️" },
                { ":film_projector:", "📽️" },
                { ":camera_flash:", "📸" },
                { ":candle:", "🕯️" },
                { ":newspaper_roll:", "🗞️" },
                { ":label:", "🏷️" },
                { ":ballot_box:", "🗳️" },
                { ":fountain_pen:", "🖋️" },
                { ":pen:", "🖊️" },
                { ":paintbrush:", "🖌️" },
                { ":crayon:", "🖍️" },
                { ":card_index_dividers:", "🗂" },
                { ":spiral_notepad:", "🗒️" },
                { ":spiral_calendar:", "🗓️" },
                { ":paperclips:", "🖇️" },
                { ":card_file_box:", "🗃️" },
                { ":file_cabinet:", "🗄️" },
                { ":wastebasket:", "🗑️" },
                { ":old_key:", "🗝️" },
                { ":pick:", "⛏️" },
                { ":hammer_and_pick:", "⚒️" },
                { ":hammer_and_wrench:", "🛠️" },
                { ":dagger:", "🗡️" },
                { ":crossed_swords:", "⚔" },
                { ":bow_and_arrow:", "🏹" },
                { ":shield:", "🛡️" },
                { ":gear:", "⚙️" },
                { ":clamp:", "🗜️" },
                { ":balance_scale:", "⚖️" },
                { ":chains:", "⛓️" },
                { ":alembic:", "⚗️" },
                { ":bed:", "🛏️" },
                { ":couch_and_lamp:", "🛋️" },
                { ":shopping_cart:", "🛒" },
                { ":coffin:", "⚰️" },
                { ":funeral_urn:", "⚱️" },
                { ":radioactive:", "☢️" },
                { ":biohazard:", "☣️" },
                { ":place_of_worship:", "🛐" },
                { ":atom_symbol:", "⚛️" },
                { ":om:", "🕉️" },
                { ":star_of_david:", "✡️" },
                { ":wheel_of_dharma:", "☸️" },
                { ":yin_yang:", "☯️" },
                { ":latin_cross:", "✝️" },
                { ":orthodox_cross:", "☦️" },
                { ":star_and_crescent:", "☪️" },
                { ":peace_symbol:", "☮️" },
                { ":menorah:", "🕎" },
                { ":next_track_button:", "⏭️" },
                { ":play_or_pause_button:", "⏯️" },
                { ":previous_track_button:", "⏮️" },
                { ":pause_button:", "⏸️" },
                { ":stop_button:", "⏹️" },
                { ":record_button:", "⏺️" },
                { ":eject_button:", "⏏️" },
                { ":female_sign:", "♀️" },
                { ":male_sign:", "♂️" },
                { ":medical_symbol:", "⚕️" },
                { ":infinity:", "♾️" },
                { ":fleur_de_lis:", "⚜️" },
                { ":asterisk:", "*️⃣" },
                { ":black_flag:", "🏴" },
                { ":white_flag:", "🏳️" },
                { ":rainbow_flag:", "🏳️‍🌈" },
                { ":pirate_flag:", "🏴‍☠️" },
                { ":ascension_island:", "🇦🇨" },
                { ":andorra:", "🇦🇩" },
                { ":united_arab_emirates:", "🇦🇪" },
                { ":afghanistan:", "🇦🇫" },
                { ":antigua_barbuda:", "🇦🇬" },
                { ":anguilla:", "🇦🇮" },
                { ":albania:", "🇦🇱" },
                { ":armenia:", "🇦🇲" },
                { ":angola:", "🇦🇴" },
                { ":antarctica:", "🇦🇶" },
                { ":argentina:", "🇦🇷" },
                { ":american_samoa:", "🇦🇸" },
                { ":austria:", "🇦🇹" },
                { ":australia:", "🇦🇺" },
                { ":aruba:", "🇦🇼" },
                { ":aland_islands:", "🇦🇽" },
                { ":azerbaijan:", "🇦🇿" },
                { ":bosnia_herzegovina:", "🇧🇦" },
                { ":barbados:", "🇧🇧" },
                { ":bangladesh:", "🇧🇩" },
                { ":belgium:", "🇧🇪" },
                { ":burkina_faso:", "🇧🇫" },
                { ":bulgaria:", "🇧🇬" },
                { ":bahrain:", "🇧🇭" },
                { ":burundi:", "🇧🇮" },
                { ":benin:", "🇧🇯" },
                { ":st_barthelemy:", "🇧🇱" },
                { ":bermuda:", "🇧🇲" },
                { ":brunei:", "🇧🇳" },
                { ":bolivia:", "🇧🇴" },
                { ":caribbean_netherlands:", "🇧🇶" },
                { ":brazil:", "🇧🇷" },
                { ":bahamas:", "🇧🇸" },
                { ":bhutan:", "🇧🇹" },
                { ":bouvet_island:", "🇧🇻" },
                { ":botswana:", "🇧🇼" },
                { ":belarus:", "🇧🇾" },
                { ":belize:", "🇧🇿" },
                { ":canada:", "🇨🇦" },
                { ":cocos_islands:", "🇨🇨" },
                { ":congo_kinshasa:", "🇨🇩" },
                { ":central_african_republic:", "🇨🇫" },
                { ":congo_brazzaville:", "🇨🇬" },
                { ":switzerland:", "🇨🇭" },
                { ":cote_divoire:", "🇨🇮" },
                { ":cook_islands:", "🇨🇰" },
                { ":chile:", "🇨🇱" },
                { ":cameroon:", "🇨🇲" },
                { ":colombia:", "🇨🇴" },
                { ":clipperton_island:", "🇨🇵" },
                { ":costa_rica:", "🇨🇷" },
                { ":cuba:", "🇨🇺" },
                { ":cape_verde:", "🇨🇻" },
                { ":curacao:", "🇨🇼" },
                { ":christmas_island:", "🇨🇽" },
                { ":cyprus:", "🇨🇾" },
                { ":czech_republic:", "🇨🇿" },
                { ":diego_garcia:", "🇩🇬" },
                { ":djibouti:", "🇩🇯" },
                { ":denmark:", "🇩🇰" },
                { ":dominica:", "🇩🇲" },
                { ":dominican_republic:", "🇩🇴" },
                { ":algeria:", "🇩🇿" },
                { ":ceuta_melilla:", "🇪🇦" },
                { ":ecuador:", "🇪🇨" },
                { ":estonia:", "🇪🇪" },
                { ":egypt:", "🇪🇬" },
                { ":western_sahara:", "🇪🇭" },
                { ":eritrea:", "🇪🇷" },
                { ":ethiopia:", "🇪🇹" },
                { ":eu:", "🇪🇺" },
                { ":finland:", "🇫🇮" },
                { ":fiji:", "🇫🇯" },
                { ":falkland_islands:", "🇫🇰" },
                { ":micronesia:", "🇫🇲" },
                { ":faroe_islands:", "🇫🇴" },
                { ":gabon:", "🇬🇦" },
                { ":grenada:", "🇬🇩" },
                { ":georgia:", "🇬🇪" },
                { ":french_guiana:", "🇬🇫" },
                { ":guernsey:", "🇬🇬" },
                { ":ghana:", "🇬🇭" },
                { ":gibraltar:", "🇬🇮" },
                { ":greenland:", "🇬🇱" },
                { ":gambia:", "🇬🇲" },
                { ":guinea:", "🇬🇳" },
                { ":guadeloupe:", "🇬🇵" },
                { ":equatorial_guinea:", "🇬🇶" },
                { ":greece:", "🇬🇷" },
                { ":south_georgia_south_sandwich_islands:", "🇬🇸" },
                { ":guatemala:", "🇬🇹" },
                { ":guam:", "🇬🇺" },
                { ":guinea_bissau:", "🇬🇼" },
                { ":guyana:", "🇬🇾" },
                { ":hong_kong:", "🇭🇰" },
                { ":heard_mcdonald_islands:", "🇭🇲" },
                { ":honduras:", "🇭🇳" },
                { ":croatia:", "🇭🇷" },
                { ":haiti:", "🇭🇹" },
                { ":hungary:", "🇭🇺" },
                { ":canary_islands:", "🇮🇨" },
                { ":indonesia:", "🇮🇩" },
                { ":ireland:", "🇮🇪" },
                { ":israel:", "🇮🇱" },
                { ":isle_of_man:", "🇮🇲" },
                { ":india:", "🇮🇳" },
                { ":british_indian_ocean_territory:", "🇮🇴" },
                { ":iraq:", "🇮🇶" },
                { ":iran:", "🇮🇷" },
                { ":iceland:", "🇮🇸" },
                { ":jersey:", "🇯🇪" },
                { ":jamaica:", "🇯🇲" },
                { ":jordan:", "🇯🇴" },
                { ":kenya:", "🇰🇪" },
                { ":kyrgyzstan:", "🇰🇬" },
                { ":cambodia:", "🇰🇭" },
                { ":kiribati:", "🇰🇮" },
                { ":comoros:", "🇰🇲" },
                { ":st_kitts_nevis:", "🇰🇳" },
                { ":north_korea:", "🇰🇵" },
                { ":kuwait:", "🇰🇼" },
                { ":cayman_islands:", "🇰🇾" },
                { ":kazakhstan:", "🇰🇿" },
                { ":laos:", "🇱🇦" },
                { ":lebanon:", "🇱🇧" },
                { ":st_lucia:", "🇱🇨" },
                { ":liechtenstein:", "🇱🇮" },
                { ":sri_lanka:", "🇱🇰" },
                { ":liberia:", "🇱🇷" },
                { ":lesotho:", "🇱🇸" },
                { ":lithuania:", "🇱🇹" },
                { ":luxembourg:", "🇱🇺" },
                { ":latvia:", "🇱🇻" },
                { ":libya:", "🇱🇾" },
                { ":morocco:", "🇲🇦" },
                { ":monaco:", "🇲🇨" },
                { ":moldova:", "🇲🇩" },
                { ":montenegro:", "🇲🇪" },
                { ":st_martin:", "🇲🇫" },
                { ":madagascar:", "🇲🇬" },
                { ":marshall_islands:", "🇲🇭" },
                { ":macedonia:", "🇲🇰" },
                { ":mali:", "🇲🇱" },
                { ":myanmar:", "🇲🇲" },
                { ":mongolia:", "🇲🇳" },
                { ":macau:", "🇲🇴" },
                { ":northern_mariana_islands:", "🇲🇵" },
                { ":martinique:", "🇲🇶" },
                { ":mauritania:", "🇲🇷" },
                { ":montserrat:", "🇲🇸" },
                { ":malta:", "🇲🇹" },
                { ":mauritius:", "🇲🇺" },
                { ":maldives:", "🇲🇻" },
                { ":malawi:", "🇲🇼" },
                { ":mexico:", "🇲🇽" },
                { ":malaysia:", "🇲🇾" },
                { ":mozambique:", "🇲🇿" },
                { ":namibia:", "🇳🇦" },
                { ":new_caledonia:", "🇳🇨" },
                { ":niger:", "🇳🇪" },
                { ":norfolk_island:", "🇳🇫" },
                { ":nigeria:", "🇳🇬" },
                { ":nicaragua:", "🇳🇮" },
                { ":netherlands:", "🇳🇱" },
                { ":norway:", "🇳🇴" },
                { ":nepal:", "🇳🇵" },
                { ":nauru:", "🇳🇷" },
                { ":niue:", "🇳🇺" },
                { ":new_zealand:", "🇳🇿" },
                { ":oman:", "🇴🇲" },
                { ":panama:", "🇵🇦" },
                { ":peru:", "🇵🇪" },
                { ":french_polynesia:", "🇵🇫" },
                { ":papua_new_guinea:", "🇵🇬" },
                { ":philippines:", "🇵🇭" },
                { ":pakistan:", "🇵🇰" },
                { ":poland:", "🇵🇱" },
                { ":st_pierre_miquelon:", "🇵🇲" },
                { ":pitcairn_islands:", "🇵🇳" },
                { ":puerto_rico:", "🇵🇷" },
                { ":palestinian_territories:", "🇵🇸" },
                { ":portugal:", "🇵🇹" },
                { ":palau:", "🇵🇼" },
                { ":paraguay:", "🇵🇾" },
                { ":qatar:", "🇶🇦" },
                { ":reunion:", "🇷🇪" },
                { ":romania:", "🇷🇴" },
                { ":serbia:", "🇷🇸" },
                { ":rwanda:", "🇷🇼" },
                { ":saudi_arabia:", "🇸🇦" },
                { ":solomon_islands:", "🇸🇧" },
                { ":seychelles:", "🇸🇨" },
                { ":sudan:", "🇸🇩" },
                { ":sweden:", "🇸🇪" },
                { ":singapore:", "🇸🇬" },
                { ":st_helena:", "🇸🇭" },
                { ":slovenia:", "🇸🇮" },
                { ":svalbard_jan_mayen:", "🇸🇯" },
                { ":slovakia:", "🇸🇰" },
                { ":sierra_leone:", "🇸🇱" },
                { ":san_marino:", "🇸🇲" },
                { ":senegal:", "🇸🇳" },
                { ":somalia:", "🇸🇴" },
                { ":suriname:", "🇸🇷" },
                { ":south_sudan:", "🇸🇸" },
                { ":sao_tome_principe:", "🇸🇹" },
                { ":el_salvador:", "🇸🇻" },
                { ":sint_maarten:", "🇸🇽" },
                { ":syria:", "🇸🇾" },
                { ":swaziland:", "🇸🇿" },
                { ":tristan_da_cunha:", "🇹🇦" },
                { ":turks_caicos_islands:", "🇹🇨" },
                { ":chad:", "🇹🇩" },
                { ":french_southern_territories:", "🇹🇫" },
                { ":togo:", "🇹🇬" },
                { ":thailand:", "🇹🇭" },
                { ":tajikistan:", "🇹🇯" },
                { ":tokelau:", "🇹🇰" },
                { ":timor_leste:", "🇹🇱" },
                { ":turkmenistan:", "🇹🇲" },
                { ":tunisia:", "🇹🇳" },
                { ":tonga:", "🇹🇴" },
                { ":tr:", "🇹🇷" },
                { ":trinidad_tobago:", "🇹🇹" },
                { ":tuvalu:", "🇹🇻" },
                { ":taiwan:", "🇹🇼" },
                { ":tanzania:", "🇹🇿" },
                { ":ukraine:", "🇺🇦" },
                { ":uganda:", "🇺🇬" },
                { ":us_outlying_islands:", "🇺🇲" },
                { ":united_nations:", "🇺🇳" },
                { ":uruguay:", "🇺🇾" },
                { ":uzbekistan:", "🇺🇿" },
                { ":vatican_city:", "🇻🇦" },
                { ":st_vincent_grenadines:", "🇻🇨" },
                { ":venezuela:", "🇻🇪" },
                { ":british_virgin_islands:", "🇻🇬" },
                { ":us_virgin_islands:", "🇻🇮" },
                { ":vietnam:", "🇻🇳" },
                { ":vanuatu:", "🇻🇺" },
                { ":wallis_futuna:", "🇼🇫" },
                { ":samoa:", "🇼🇸" },
                { ":kosovo:", "🇽🇰" },
                { ":yemen:", "🇾🇪" },
                { ":mayotte:", "🇾🇹" },
                { ":south_africa:", "🇿🇦" },
                { ":zambia:", "🇿🇲" },
                { ":zimbabwe:", "🇿🇼" },
            };

            _reverse = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
            foreach (var (name, emoji) in _lookup)
            {
                _reverse[emoji] = name;
            }
        }

        public static string Replace(string text)
        {
            if (string.IsNullOrWhiteSpace(text))
            {
                return text;
            }

            try
            {
                return _regex.Replace(text, m =>
                {
                    if (_lookup.TryGetValue(m.Value, out var emoji))
                    {
                        return m.Value.Replace(m.Value, emoji);
                    }

                    return m.Value;
                });
            }
            catch
            {
                return text;
            }
        }

        public static string GetEmoji(string text, string fallback = null)
        {
            if (!string.IsNullOrWhiteSpace(text))
            {
                if (_lookup.TryGetValue(text, out var emoji))
                {
                    return emoji;
                }
            }

            return fallback;
        }

        public static string GetEmojiShortcode(string emoji, string fallback = null)
        {
            if (!string.IsNullOrWhiteSpace(emoji))
            {
                if (_reverse.TryGetValue(emoji, out var text))
                {
                    return text;
                }
            }

            return fallback;
        }
    }
}
